v = 1;
v = 1

a = v++; a = v *= 2
a += a
a = v += (2 * a)
b = 77.21;

t = typeof v
logic = a && b || v
logic2 = logic ? true : false;

"hello world"
'hello world'
1234 // comment
0x4a9f

logic3 = (a > b) && c > 10 ? "yes" : b & c;

f = function() {}
f2 = function(p1) {
   a = p1  // comment
   b = p1 * (3 + v)
   /*
    * comment multi line  
    */
}

f()
f();
f(123)
f(123);
f(12.67, "ok", 'hello')
f([1,2,3, a + 2], { })

gvar = f2(true, {a: 1, b: 2})[++a];

(function() { gvar = 365.123; })(); // self invocation

(function fff(arg1, arg2, arg3) {
   var s = arg1 + arg2 * arg3 - arg2;
   var a = [];
   a[0] = arg1 % arg4;
})(gvar * gvar, gvar + 3, (gvar + 2) * gvar);


w = new Widget
w = new Widget()
new Widget
new Widget();
new Widget(9999, 0xff, [])

isWidget = w instanceof "Widget"

arr = [];
len = arr.length
lastIndex = arr.length - 1
arr[0] = 3.141516
arr[lastIndex + arr.lengh * 2] = len * len

obj = {}; obj = {}
obj.prop1 = arr[2];
obj["prop2"] = 12
obj['prop' + "3"] = obj.prop1 * obj.prop1;
obj.prop4 = obj.prop5 = obj.prop3 = [1,2,3,4,5, function sum(arr) {}]

(bogus * 3 + 4)

complex = {
   a : 123,
   b : null,
   c : a && b || c,
   d : { },
   e : [ [ [] ], {id: "myid"}, this.name.last ],
   istrue : !!len,
   zz : function(p1,p2,p3) { yy = p1 + p2 + p3 * 3; }
}
